One method for transmitting data from point to point involves using electronic mail, via the Simple Mail Transfer Protocol (SMTP, RFC821 http://www.faqs.org/rfcs/rfc821.html). This protocol allows users to send messages and data packages from computer to computer. In addition, the Hypertext Transfer Protocol (HTTP, RFC 2068 http://www.faqs.org/rfcs/rfc2068.html) and File Transfer Protocol (FTP, RFC 959 http://www.faqs.org/rfcs/rfc959.html) allow individuals to transfer files between computers. In the above cases, there is a one-to-one relationship between the senders and recipients, with respect to the network bandwidth required to transfer messages and data packets.
The implementation of the above protocols has resulted in the need for intermediating servers. With intermediating servers, in order to send data from one party to another, data is usually uploaded to an intermediating server, where it is then downloaded by the intended recipient. In the case of electronic mail and SMTP, a mail message is sent from the sender's mail server to the recipient's mail server, where it is then downloaded by a recipient. Alternatively, a web site can allow files to be transmitted through HTTP, whereby a sender can post a file to the site for a recipient to download.
Each of these implementations is constrained by the limited resources of the intermediating server. For example, web sites and electronic mail servers have quotas that limit the amount of data that can be stored at a given time. This storage limit can prevent large files from being sent from user to user by way of an intermediating server.
Some users can bypass this problem by hosting their own web server or mail server. Even if a user were to switch to this practice, another potential problem remains. Specifically, the network I/O (input/output) bandwidth of the server is limited. The bandwidth limitation could be problematic in situations where an individual wishes to send a larger amount of data to a number of users. The limited I/O bandwidth would slow the process.
Some solutions to sharing I/O bandwidth of networked computers have been developed. Advanced file transfer protocols have been somewhat automated, modified, and integrated into peer-to-peer networks, such as Napster™, iMesh™, and ScourExchange™. These networks are all examples of directory-mediated file sharing. This technology in general has been useful for distributing bandwidth and reducing centralized server loads, but transfers are still manually initiated in a “pull-based” approach. Using this approach, in order to send a file, a sender sends a link to a recipient, who then manually retrieves or “pulls” the file directly from the sender's computer.
Also, a number of mirroring and caching technologies have been developed to distribute the bandwidth requirement away from centralized servers. Mirroring involves placing complete copies of downloadable content (i.e., data) onto multiple servers. These servers may be located in one location or distributed geographically.
In addition, other content distribution technologies have been developed, such as the caching technologies described in U.S. Pat. No. 6,108,703. These technologies intelligently route content among multiple servers located around the country so that users may quickly and seamlessly access the content. Another type of caching technology has been developed by Mangosoft™, Inc. This caching technology allows computers on a local network to share content downloaded from a global network onto a computer in the local network. In other words, once a computer on a LAN (local area network) has downloaded a file from a publicly-accessible network, such as the Internet, other computers on the LAN can download the file from that computer instead of having to go out on the public network. This technology is good for sharing data within a local network, but it does not provide a method for “pushing” data to the other computers inside the network. “Pushing” data means that a sender transfers data to a recipient without the recipient first requesting the transfer.
Computer viruses have been devised for pushing data onto unwitting recipients. Mail viruses such as the Melissa worm are designed to push data to multiple recipients. These viruses allow data to be sent to millions of people without coordination or bandwidth consumption from a centralized source. However, senders of these viruses have no control over their recipients and no mechanisms exist for limiting cycles in transmissions causing parties inside the network to receive multiple copies of the virus payload.
Accordingly, there is a need for an improved method and system of transferring content over a network to multiple recipients that effectively shares the bandwidth of networked computers.